home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 43
/
Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso
/
-serious-
/
archivers
/
xpk
/
xpk_source
/
include
/
sdi_defines.h
< prev
Wrap
C/C++ Source or Header
|
1999-06-14
|
3KB
|
123 lines
#ifndef SDI_DEFINES_H
#define SDI_DEFINES_H
/* Includeheader
Name: SDI_defines
Versionstring: $VER: SDI_defines.h 1.29 (01.09.1998)
Author: SDI
Distribution: PD
Description: standard defines and macros and version string
1.17 12.06.96 : RETURN_WARN instead of RETURN_ERROR in SDI_ENDCODE
1.18 06.07.96 : End: PrintFault behind end --> allows selecting output
1.19 21.08.96 : added __SASC __AMIGADATE__ support
1.20 24.08.96 : better SAS-C support
1.21 04.09.96 : changed error with SAS date having the brackets already
1.22 18.11.96 : converted to english, C++ comments to C ones
1.23 02.01.97 : corrected some stuff
1.24 17.03.97 : removed GetChar and other obsolete defines
1.25 08.10.97 : renamed defines, removed some defines
1.26 10.02.98 : made version string const
1.27 20.02.98 : added compiler independence stuff
1.28 25.06.98 : compiler independent stuff moved to SDI_compiler.h
1.29 01.09.98 : fixes for StormC Demo
*/
#include <exec/types.h>
/* ========================= useable defines ============================ */
/*
SDI_ENDCODE turn on generation of End function
SDI_ENDCODE_NOCTRLC use End generation without CTRL_C check
AUTHOR program author - default is "by SDI"
DATE programm creation date - default is automatically created
DISTRIBUTION distribution form - default is "(PD) "
REVISION revision number - default is "0"
VERSION version number - default is "1"
*/
/* ======================= no need for <stdlib.h> ======================= */
#ifdef __cplusplus
extern "C"
#endif
extern void exit(int);
/* ============================ other macros ============================ */
/* <proto/exec.h>, <dos/dos.h> */
#define CTRL_C (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
/* ================================= SAS C ============================== */
#define TestOS if(DOSBase->dl_lib.lib_Version < DosVersion) \
exit(RETURN_FAIL)
/* A word about variable DosVersion: In my startup code for MaxonC++ I
include use OpenLibrary("dos.library", DosVersion) instead of standard
OpenLibrary("dos.library",0) call. If no DosVersion is given, this
variable defaults to 33, else you can give the value by creating a global
variable ULONG DosVersion = 37;. The program does not start, when the
required DOS is not available. (Better then others, which crash) */
/* ===================== version string and EndCode ===================== */
#ifdef NAME
#ifndef AUTHOR
#define AUTHOR "by SDI"
#endif
#ifndef VERSION
#define VERSION "1"
#endif
#ifndef REVISION
#define REVISION "0"
#endif
#ifndef DATE
#if defined(__MAXON__) || defined(__STORM__)
#define SDI_DATE "(" __DATE2__ ")"
#elif defined(__SASC)
#define SDI_DATE __AMIGADATE__
#elif defined(__GNUC__)
#define SDI_DATE "(" __DATE__ ")"
#endif
#else
#define SDI_DATE "(" DATE ")"
#endif
#ifndef DISTRIBUTION
#define DISTRIBUTION "(PD) "
#endif
const STRPTR version = (STRPTR) "$VER: " NAME " " VERSION "." REVISION " "
SDI_DATE " " DISTRIBUTION AUTHOR;
#endif /* NAME */
#if defined(SDI_ENDCODE) || defined(SDI_ENDCODE_NOCTRLC)
#include "SDI_compiler.h"
INLINE void end(void);
void End(UBYTE err)
{
#ifndef SDI_ENDCODE_NOCTRLC
if(CTRL_C)
{
err = RETURN_WARN;
SetIoErr(ERROR_BREAK);
}
#endif
end();
if(err) PrintFault(IoErr(), 0);
exit(err);
}
#endif /* SDI_ENDCODE && SDI_ENDCODE_NOCTRLC */
#endif /* SDI_DEFINES_H */